// 封装数据库的基本操作
const sql = {
    // 插入数据操作
    insert (ColName,insertData){
        return new Promise((resolve,reject) => {
            ColName.insertMany(insertData, (err) => {
                err ? reject(err) : resolve()
            })
        })
    },
    // 查询操作
    find (ColName,whereData,showData) {
        return new Promise((resolve,reject) => {
            ColName.find(whereData, showData).exec((err,data) => {
                err ? reject(err) : resolve (data)
            })
        })
    },
    // 查询分页操作
    paging(ColName,whereData, showData, limit, count) {
        return new Promise((resolve,reject) => {
            ColName.find(whereData,showData).limit(limit).skip(count * limit).
            exec((err,data) => {
                err ? reject(err) : resolve(data)
            })
        })
    },
    // 查询排序操作
    sort(ColName,whereData,showData,sortData) {
        return new Promise((resolve,reject) => {
            ColName.find(whereData,showData).sort(sortData).
            exec((err,data) => {
                err ? reject(err) : resolve(data)
            }) 
        })
    },
    // 3、封装更新数据库的方法
    update (ColName, whereObj, updateObj, updateFlag) {
        // 如果updateType 为1 表示更新多条，其余为更新单条
        const updateType = updateFlag === 1 ? 'updateMany' : 'updateOne'
        return new Promise((resolve,reject) => {
            ColName[updateType](whereObj, updateObj, (err) => {
                err ? reject() : resolve()
            })
        })
    },
    // 删除数据
    delete(ColName, whereObj, deleteFlag) {
        // 如果deleteFlag 为1 表示删除多条，其余为删除单条
        const deleteType = deleteFlag === 1 ? 'deleteMany' : 'deleteOne'
        return new Promise ((resolve, reject) => {
            ColName[deleteType](whereObj, (err) => {
                err ? reject(err) : resolve()
            })
        })
    },
    // 获取的商品的大类
    distinct (ColName, feild) {
        return new Promise((resolve, reject) => {
            ColName.distinct(feild).exec((err,data) => {
                err ? reject(err) : resolve(data)
            })
        })
    }
}
// 引出sql
module.exports = sql